const cloud = require('wx-server-sdk');
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV });
const db = cloud.database();
const _ = db.command;

exports.main = async (event, context) => {
  const wxContext = cloud.getWXContext();
  const userId = wxContext.OPENID;
  
  if (!userId) {
    return {
      code: 1,
      message: '用户未登录'
    };
  }
  
  try {
    const { studyRecordId } = event;
    
    if (!studyRecordId) {
      return {
        code: 2,
        message: '学习记录ID不能为空'
      };
    }
    
    // 验证学习记录是否属于当前用户
    const studyRecord = await db.collection('study_records').doc(studyRecordId).get();
    
    if (!studyRecord.data) {
      return {
        code: 404,
        message: '学习记录不存在'
      };
    }
    
    if (studyRecord.data.userId !== userId) {
      return {
        code: 403,
        message: '无权限删除此学习记录'
      };
    }
    
    // 获取匹配ID，用于删除匹配伙伴的学习记录
    const matchId = studyRecord.data.matchId;
    
    if (matchId) {
      // 删除所有具有相同matchId的学习记录（包括当前用户和匹配伙伴的记录）
      const matchedRecords = await db.collection('study_records')
        .where({ matchId })
        .get();
      
      // 批量删除所有相关的学习记录
      const deletePromises = matchedRecords.data.map(record => 
        db.collection('study_records').doc(record._id).remove()
      );
      
      await Promise.all(deletePromises);
      
      console.log(`删除了 ${matchedRecords.data.length} 条相关学习记录，matchId: ${matchId}`);
    } else {
      // 如果没有matchId，只删除当前记录（兼容旧数据）
      await db.collection('study_records').doc(studyRecordId).remove();
      console.log('删除了单条学习记录（无matchId）');
    }
    
    return {
      code: 0,
      message: '删除学习记录成功'
    };
  } catch (error) {
    console.error('删除学习记录出错:', error);
    return {
      code: 500,
      message: '服务器错误',
      error: error.message
    };
  }
};